package com.hlkj.warboot.module_sys.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.util.List;

import com.hlkj.warboot.configurer.util.base.BaseEntityUtil;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 系统管理员
 * </p>
 *
 * @author lixing_java@163.com
 * @since 2020-06-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_admin")
public class AdminEntity extends BaseEntityUtil {

    private static final long serialVersionUID=1L;

    /**
     * @Description 自定以字段
     * @Author lixing
     * @Date 2020/6/11 21:35
     */
    @TableField(exist = false)
    private List<PermissionEntity> permissionPojoList;

    /**
     * 编号
     */
    @TableId("id")
    private String id;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 创建者账号
     */
    @TableField("create_user_account")
    private String createUserAccount;

    /**
     * 头像地址
     */
    @TableField("cover")
    private String cover;

    /**
     * 账号(全局唯一)
     */
    @TableField("account")
    private String account;

    /**
     * 姓名
     */
    @TableField("user_name")
    private String userName;

    /**
     * 密码（密文）
     */
    @TableField("pass")
    private String pass;

    /**
     * 爱好
     */
    @TableField("hobby")
    private String hobby;

    /**
     * 出生日期
     */
    @TableField("birthday")
    private Date birthday;

    /**
     * 年龄
     */
    @TableField("age")
    private Integer age;

    /**
     * 性别（1:男,2:女,3:未知）
     */
    @TableField("sex")
    private Integer sex;

    /**
     * 手机号码（同一个手机号码可以被多个账号绑定）
     */
    @TableField("phone")
    private String phone;

    /**
     * 邮箱（同一个手机号码可以被多个账号绑定）
     */
    @TableField("email")
    private String email;

    /**
     * 所属省份
     */
    @TableField("province")
    private String province;

    /**
     * 所属城市
     */
    @TableField("city")
    private String city;

    /**
     * 所属区县
     */
    @TableField("area")
    private String area;

    /**
     * 详细地址
     */
    @TableField("address")
    private String address;

    /**
     * 用户备注信息
     */
    @TableField("description")
    private String description;

    /**
     * 用户等级（1:超级管理员,2:省级管理员,3:地市管理员,4:区县管理员）
     */
    @TableField("grade")
    private Integer grade;

    /**
     * 用户状态（1:开启,2:禁用）
     */
    @TableField("active")
    private Integer active;

    /**
     * 最后一次登陆时间
     */
    @TableField("login_time")
    private Date loginTime;

    /**
     * 最后一次登陆ip
     */
    @TableField("login_ip")
    private String loginIp;

    public AdminEntity() {}

    public AdminEntity(String account, Integer age, Integer sex, String phone, Date createTime) {
        this.account = account;
        this.age = age;
        this.sex = sex;
        this.phone = phone;
        this.createTime = createTime;
    }
}
